The present disclosure relates generally to computer system resources, and more specifically to managing event processing by a computer system.
In computer systems, the term “event” is used to describe an action that requires a response from some aspect of the computer system program code. For example, a user may strike a particular key (e.g., the ESC key) on the computer's keyboard, which could cause a target program code of the computer system to perform one or more actions associated with that key. Often the action that needs to be taken is described by so-called event descriptions stored in a queue in system memory. Upon the occurrence of an event, the target program code must find the event description, which may lead to special purpose program code, and execute it. Typically this involves notifying the target program code that an event has happened, as well notifying it of the location of the queue slot(s) holding the event description.
Notifying the target computer program code of an event can be accomplished by sending an interrupt request to the target computer program code. Because contemporary computer systems include many queues, additional stages are often provided so the target computer program code can find the queue slot(s) it needs without having to check through thousands of queues. For example, event “A” occurs, which causes the loading of an event description into a sequence of queue slots “B”. A bit “C” is set in a bit vector to identify queue slot(s) B. A summary bit “D” is set to identify the aforementioned bit B. Finally, an interrupt signal alerts the target program code of the event. Upon receipt of the interrupt signal, the target program code finds the event description by moving through the aforementioned stages in the opposite direction. Thus, the interrupt signal points the target program code to summary bit D, which points to vector bit C, which points to queue slot(s) B, which contains the event description that directs the target computer program code how to carry out actions responsive to event A.